#include <iostream>

using namespace std;
/*
int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};

用户指定开始下标为 2，结束下标为 6，
    {5, 7, 9, 2}
【隐含一定的条件约束】
    1. 截取数据，结束下标对应的元素在新数组中不存在，要头不要尾 [begin, end)
    2. 用户指定的起始下标和终止下标必须在合法范围以内。
    3. 需要根据用户提供的下标范围，创建一个新的数组，暂时使用 C99 以上版本能力，完成一个临时的数组
*/

void wrong(int arr[], int capacity, int begin, int end);
int number(int begin, int end);
void extraction_function(int arr[], int block[], int begin, int end);
void out_function(int block[], int size);

int main(int argc, char const *argv[])
{
    int begin = 2;
    int end = 6;
    int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};

    wrong(arr, 10, begin, end);

 
    int block[end - begin] = {0};
    extraction_function(arr, block, 2, 6);
    out_function(block, 4);

    return 0;
}

void wrong(int arr[], int capacity, int begin, int end)
{
    if (begin < 0 || end > begin || end > capacity)
    {
        cout << "有问题！！！！！" << endl;
        exit(1);
    }
}


void extraction_function(int arr[], int block[], int begin, int end)
{
    int temp = 0;
    for (int i = begin; i < end; i++)
    {
        block[temp++] = arr[i];
    }
}
void out_function(int block[], int size)
{

    for (int i = 0; i < size; i++)
    {
        cout << block[i] << "  ";
    }
    cout << endl;
}
